/*
  平面上的对称点
  题目描述
    在直角坐标系中的点 A(x1, y1)和点 B(x2, y2)，
    如果点 A 的横坐标与点 B 的纵坐标相等并且点 A 的纵坐标与点 B 的横坐标相等，则称 AB 为一对对称点，
    例如：(1, 2)和(2, 1)就是一对对称点。
    现给定平面上 n 个点，找出其中有多少对对称点。
  输入描述
    第一行一个整数 n，表示点的个数。
    接下来 n 行，每行两个整数 x、y，表示一个点的横坐标和纵坐标。
  输出描述
    输出一个整数，表示有多少对对称点。
  样例1
    输入
      3
      1 3
      2 2
      3 1
    输出
      1
  提示
    对于 100% 的数据，保证 1 <= n <= 10^3, 0 <= x, y <= 10^9
*/

#include <iostream>

using namespace std;

struct node{
	long long x;
	long long y;
} a[1005];

int main() {
    int n;
    int z = 0;

    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i].x >> a[i].y;
    }

    for (int i = 1; i <= n; i++) {
        for (int j = i + 1; j <= n; j++) {
            if (a[i].x == a[j].y && a[i].y == a[j].x) {
                z++;
            }
        }
    }

    cout << z;

    return 0;
}